vl.markCircle({size: 80}).data(antibiotics).transform(
vl.calculate('split(datum.Bacteria, " ")[0]').as('Split'),
vl.calculate('indexof(["Salmonella", "Staphylococcus", "Streptococcus"], datum.Split) >= 0 ? datum.Split : "Other"').as('Genus')
).encode(
vl.x().fieldQ('Neomycin').sort('descending')
.scale({type: 'log', domain: [0.001, 1000]})
.axis({tickCount: 5})
.title('Neomycin MIC (μg/ml, reverse log scale)'),
vl.y().fieldQ('Penicillin').sort('descending')
.scale({type: 'log', domain: [0.001, 1000]})
.axis({tickCount: 5})
.title('Penicillin MIC (μg/ml, reverse log scale)'),
vl.color().fieldO('Genus').scale({
domain: ['Salmonella', 'Staphylococcus', 'Streptococcus', 'Other'],
range: ['rgb(76,120,168)', 'rgb(84,162,75)', 'rgb(228,87,86)', 'rgb(121,112,110)']
})
).width(250).height(250).render()